XAML (Extensible Application Markup Language) এ Data Validation এবং Error Template ব্যবহার করা হয় ইউজারের ইনপুট যাচাই করার জন্য এবং যদি কোন ত্রুটি ঘটে, তা UI-তে প্রদর্শন করার জন্য। এটি UI উপাদানগুলির সাথে data binding এর মাধ্যমে সংযুক্ত হয়ে ইনপুট ভ্যালিডেশন পরিচালনা করে। XAML এ এই ফিচারগুলি ব্যবহার করা হলে, আপনি অ্যাপ্লিকেশনটির ইউজার ইন্টারফেসে ডাটা ইন্টারঅ্যাকশন এবং ব্যবহারকারীর ত্রুটি বিষয়ক সঠিক তথ্য প্রদান করতে পারেন।
Data Validation Rules
Data Validation Rules হল এমন শর্তাবলী বা লজিক, যা নির্দিষ্ট ডেটা টাইপ বা ফিল্ডের মান যাচাই করে। এগুলি সাধারণত IDataErrorInfo বা ValidationRules এর মাধ্যমে ডিফাইন করা হয়। যখন কোন ব্যবহারকারী একটি ইনপুট ফিল্ডে ডেটা প্রদান করেন, তখন এই রুলগুলি সেই ইনপুট যাচাই করতে ব্যবহৃত হয়।
XAML এ ValidationRules ব্যবহার করে আপনি একটি ইনপুট ফিল্ডের জন্য ভ্যালিডেশন রুল সেট করতে পারেন, যা ইনপুটে ভুল হলে একটি ত্রুটি দেখাবে।
ValidationRules উদাহরণ:
<TextBox Width="200">
<TextBox.Text>
<Binding Path="Age">
<Binding.ValidationRules>
<ExceptionValidationRule />
</Binding.ValidationRules>
</Binding>
</TextBox.Text>
</TextBox>
এখানে:
- ExceptionValidationRule হল একটি স্ট্যান্ডার্ড রুল যা একটি এক্সেপশন সনাক্ত করলে ত্রুটি দেখাবে। এখানে
Ageপ্রপার্টি থেকে ইনপুট নেওয়া হচ্ছে এবং ত্রুটি পাওয়ার সময় এটি UI তে প্রদর্শিত হবে।
Custom Validation Rule উদাহরণ:
<TextBox Width="200">
<TextBox.Text>
<Binding Path="Age">
<Binding.ValidationRules>
<local:AgeValidationRule />
</Binding.ValidationRules>
</Binding>
</TextBox.Text>
</TextBox>
এখানে:
AgeValidationRuleএকটি কাস্টম ভ্যালিডেশন রুল, যেটি C# কোডে ডিফাইন করা হবে এবং এই রুলটি ইনপুট যাচাই করবে (যেমন, বয়স ১৮ এর নিচে হতে পারবে না)।
AgeValidationRule C# কোড:
public class AgeValidationRule : ValidationRule
{
public override ValidationResult Validate(object value, CultureInfo cultureInfo)
{
int age;
if (int.TryParse(value.ToString(), out age))
{
if (age < 18)
return new ValidationResult(false, "Age must be 18 or older");
else
return ValidationResult.ValidResult;
}
return new ValidationResult(false, "Invalid Age");
}
}
Error Template
Error Template হল একটি কাস্টম UI ডিফিনেশন যা ডাটা ভ্যালিডেশন এরর ঘটলে ত্রুটির বার্তা প্রদর্শন করতে ব্যবহৃত হয়। এটি ControlTemplate অথবা ErrorTemplate হিসেবে কাস্টম স্টাইল/ডিজাইন তৈরি করতে সাহায্য করে, যাতে ত্রুটির বার্তা সুন্দরভাবে UI তে প্রদর্শিত হয়।
XAML এ ErrorTemplate ব্যবহার করে আপনি একটি কাস্টম ইরর মেসেজ ফরম্যাট করতে পারেন, যা ভ্যালিডেশন রুলটি ত্রুটি দেখালে ব্যবহারকারীর সামনে প্রদর্শিত হবে।
ErrorTemplate উদাহরণ:
<TextBox Width="200">
<TextBox.Text>
<Binding Path="Age">
<Binding.ValidationRules>
<local:AgeValidationRule />
</Binding.ValidationRules>
</Binding>
</TextBox.Text>
<TextBox.Template>
<ControlTemplate TargetType="TextBox">
<Border BorderBrush="Gray" BorderThickness="1">
<TextBox x:Name="PART_ContentHost" />
</Border>
<ControlTemplate.Triggers>
<DataTrigger Binding="{Binding Path=(Validation.HasError), RelativeSource={RelativeSource Self}}" Value="True">
<Setter TargetName="PART_ContentHost" Property="BorderBrush" Value="Red"/>
<Setter TargetName="PART_ContentHost" Property="ToolTip" Value="Invalid input, please correct."/>
</DataTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</TextBox.Template>
</TextBox>
এখানে:
- DataTrigger ব্যবহার করা হয়েছে যা Validation.HasError প্রপার্টির মান True হলে, টেক্সট বক্সের বর্ডার ব্রাশ লাল (Red) হবে এবং একটি টুলটিপ ত্রুটির বার্তা দেখাবে।
- PART_ContentHost হল TextBox এর মূল অংশ যেখানে ইন্টারঅ্যাকশন করা হয়।
ব্যবহারকারী UI তে ত্রুটি বার্তা প্রদর্শন
ভ্যালিডেশন রুল বা ইরর টেমপ্লেট ব্যবহারের মাধ্যমে আপনি ব্যবহারকারীর ইনপুটের ত্রুটির বার্তা সুন্দরভাবে প্রদর্শন করতে পারেন। সাধারণত Validation.Errors এর মাধ্যমে ত্রুটি বার্তা সংগ্রহ করা হয় এবং XAML এ তা UI তে দেখানো হয়।
Validation.Errors উদাহরণ:
<TextBox Width="200" Margin="10">
<TextBox.Text>
<Binding Path="Age">
<Binding.ValidationRules>
<local:AgeValidationRule />
</Binding.ValidationRules>
</Binding>
</TextBox.Text>
<TextBox.ToolTip>
<Binding Path="(Validation.Errors)" StringFormat="{}{0}" />
</TextBox.ToolTip>
</TextBox>
এখানে:
- Validation.Errors ব্যবহার করে ইনপুটের ত্রুটি বার্তা ToolTip এ দেখানো হয়েছে।
Conclusion
XAML এ Data Validation এবং Error Template ব্যবহারের মাধ্যমে আপনি UI তে ডাটা ভ্যালিডেশন এবং ত্রুটির বার্তা সুন্দরভাবে প্রদর্শন করতে পারেন, যা ব্যবহারকারীর অভিজ্ঞতাকে আরও উন্নত এবং প্রফেশনাল করে তোলে। এটি অ্যাপ্লিকেশনকে ডাটা ইন্টিগ্রিটি রক্ষা করতে এবং ইউজার ইন্টারফেসকে আরও ফ্রেন্ডলি ও রেসপন্সিভ করতে সাহায্য করে।
Read more